/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：CommandClockwise.js<br>
 * 日期：2016年9月29日<br>
 * 作者: 王志远<br>
 * 功能：顺时针旋转命令<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");

/**
 * 类型名称：Rainier.UI.V2.CommandClockwise<br>
 * 类型功能：顺时针旋转命令<br>
 */
Rainier.UI.V2.CommandClockwise = draw2d.command.CommandRotate.extend({
	
	NAME : "Rainier.UI.V2.CommandClockwise",
	
	/**
	 * 函数名称：Rainier.UI.V2.CommandClockwise.init<br>
	 * 函数功能：构造函数<br>
	 * 异常信息：无<br>
	 */
	init : function(context,editPart){
		
		this.context	= context;
		this.editPart	= editPart;
		this.model		= editPart.getModel();
		this.transform	= this.model.getProperty().modelProperty.transform;
		this.figure		= null;
		if(this.editPart){
			this.figure = this.editPart.getFigure();
			this._super(this.figure,90);
		}
	},
	
    /**
	 * 函数名称：Rainier.UI.V2.CommandClockwise.canExecute<br>
	 * 函数功能：是否能够执行命令<br>
	 * 函数返回：Boolean<br>
	 * 异常信息：无<br>
	 */
    canExecute:function(){
        return this.editPart.getFigure().getCanvas()!==null;
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.CommandClockwise.execute<br>
	 * 函数功能：执行命令<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    execute:function(){
    	this.redo();
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.CommandClockwise.undo<br>
	 * 函数功能：撤销命令<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    undo:function(){
    	var angle  = (this.figure.getRotationAngle()+360-90)%360;
    	this.transform.angle = angle;
    	this.rotate(angle);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.CommandClockwise.redo<br>
	 * 函数功能：重做命令<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    redo:function(){
    	var angle  = (this.figure.getRotationAngle()+360+90)%360;
    	this.transform.angle = angle;
    	this.rotate(angle);
    }

});